Chromecast (a digital media device made by Google) can be used to “cast” media to a TV from a portable device or from a Chrome web browser. “Casting” here means the transfer or mirroring of a media viewing session from a sender device to a Google Cast device, of which the Chromecast is an example. Chromecast supports DASH, Smooth Streaming and HLS technologies for streaming media delivery. A Google Cast device is connected to the TV, for example, using an HDMI connector. Google Cast enables rendering of media in three modes, namely: mirroring, remote display, and by transferring the streaming playback session to the Google Cast device. In the first two cases the content decoding happens on the sender device. In the third case, decoding of streaming media content is done by the Google Cast. Google Cast devices have built-in support for Widevine and PlayReady DRM (digital rights management) technologies. With HLS streaming, content protection is supported using AES-128 encryption. The Chromecast API defined in JavaScript mainly covers the media player interface and receiver functions. Only the developer of Google Cast technology, namely Google, has the ability to add support for additional DRM technologies to Google Cast; independent application developers do not have the ability to install clients for additional DRM technologies on Google Cast devices.
A solution that would enable transferring a playback session of streaming media content protected using a non-native content protection technology (e.g. SecureMedia® from ARRIS International plc) from a mobile device to a Google Cast-like device, without adding a client of the non-native DRM to the device or resorting to screen mirroring, would be desirable. Such a solution would put all or substantially all of the workload of retrieving, decrypting, and decoding protected media on the Google Cast device.